home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
This Disc Bytes!
/
Power Computing - The Disc 2 - This Disc Bytes.ISO
/
mac
/
CodeWarrior 7 Lite for 68K
/
MacOS Support
/
Headers
/
Universal Headers
/
Serial.h
< prev
next >
Wrap
Text File
|
1995-07-06
|
4KB
|
171 lines
/*
File: Serial.h
Contains: Serial port Interfaces.
Version: Technology: System 7.5
Package: Universal Interfaces 2.1 in “MPW Latest” on ETO #18
Copyright: © 1984-1995 by Apple Computer, Inc.
All rights reserved.
Bugs?: If you find a problem with this file, use the Apple Bug Reporter
stack. Include the file and version information (from above)
in the problem description and send to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
*/
#ifndef __SERIAL__
#define __SERIAL__
#ifndef __TYPES__
#include <Types.h>
#endif
/* #include <ConditionalMacros.h> */
#ifdef __cplusplus
extern "C" {
#endif
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=mac68k
#endif
#if PRAGMA_IMPORT_SUPPORTED
#pragma import on
#endif
enum {
baud300 = 380,
baud600 = 189,
baud1200 = 94,
baud1800 = 62,
baud2400 = 46,
baud3600 = 30,
baud4800 = 22,
baud7200 = 14,
baud9600 = 10,
baud19200 = 4,
baud38400 = 1,
baud57600 = 0,
stop10 = 16384,
stop15 = -32768,
stop20 = -16384,
noParity = 0,
oddParity = 4096,
evenParity = 12288,
data5 = 0,
data6 = 2048,
data7 = 1024,
data8 = 3072
};
enum {
ctsEvent = 32,
breakEvent = 128,
xOffWasSent = 128,
dtrNegated = 64,
ainRefNum = -6, /*serial port A input*/
aoutRefNum = -7, /*serial port A output*/
binRefNum = -8, /*serial port B input*/
boutRefNum = -9, /*serial port B output*/
swOverrunErr = 1, /*serial driver error masks*/
breakErr = 8, /*serial driver error masks*/
parityErr = 16, /*serial driver error masks*/
hwOverrunErr = 32, /*serial driver error masks*/
framingErr = 64, /*serial driver error masks*/
serdOptionClockExternal = 0x40, /*option bit used with Control code 16*/
serdOptionPreserveDTR = 0x80 /*option bit used with Control code 16*/
};
enum {
sPortA,
sPortB
};
typedef SInt8 SPortSel;
/* csCodes for serial driver Control routines */
enum {
serdReset = 8,
serdSetBuf = 9,
serdHShake = 10,
serdClrBrk = 11,
serdSetBrk = 12,
serdSetBaud = 13,
serdHShakeDTR = 14,
serdSetMIDI = 15,
serdSetMisc = 16,
serdSetDTR = 17,
serdClrDTR = 18,
serdSetPEChar = 19,
serdSetPECharAlternate = 20,
serdSetXOff = 21,
serdClrXOff = 22,
serdSendXOnConditional = 23,
serdSendXOn = 24,
serdSendXOffConditional = 25,
serdSendXOff = 26,
serdChannelReset = 27,
serdSet230KBaud = 'JF', /* set 230K baud data rate */
serdSetPollWrite = 'jf', /* disable interrupt-driven transmit */
serdSetFlushCount = 'FC'
};
/* csCodes for serial driver Status routines */
enum {
serdGetBuf = 2,
serdStatus = 8,
serdGetVers = 9,
serdGetVersSys = 0x8000
};
struct SerShk {
Byte fXOn; /*XOn flow control enabled flag*/
Byte fCTS; /*CTS flow control enabled flag*/
unsigned char xOn; /*XOn character*/
unsigned char xOff; /*XOff character*/
Byte errs; /*errors mask bits*/
Byte evts; /*event enable mask bits*/
Byte fInX; /*Input flow control enabled flag*/
Byte fDTR; /*DTR input flow control flag*/
};
typedef struct SerShk SerShk;
struct SerStaRec {
Byte cumErrs;
Byte xOffSent;
Byte rdPend;
Byte wrPend;
Byte ctsHold;
Byte xOffHold;
};
typedef struct SerStaRec SerStaRec;
extern pascal OSErr SerReset(short refNum, short serConfig);
extern pascal OSErr SerSetBuf(short refNum, Ptr serBPtr, short serBLen);
extern pascal OSErr SerHShake(short refNum, const SerShk *flags);
extern pascal OSErr SerSetBrk(short refNum);
extern pascal OSErr SerClrBrk(short refNum);
extern pascal OSErr SerGetBuf(short refNum, long *count);
extern pascal OSErr SerStatus(short refNum, SerStaRec *serSta);
#if PRAGMA_IMPORT_SUPPORTED
#pragma import off
#endif
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=reset
#endif
#ifdef __cplusplus
}
#endif
#endif /* __SERIAL__ */